package com.xindacloud.sms.console.system.dto;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

import com.xindacloud.sms.console.system.dto.common.PageDTO;
import com.xindacloud.sms.console.system.entity.SmsUserRole;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value="UserDTO",description="用户DTO")
public class UserDTO extends PageDTO implements Serializable {

    /**
     *
     */
    private static final long serialVersionUID = 5599682693356906408L;
    @ApiModelProperty(value = "用户ID", name = "userId")
    private Integer userId;
    @ApiModelProperty(value="用户名",name="username",notes = "用户名",example="user1", required = true)
    private String username;
    @ApiModelProperty(value="密码",name="password",notes = "密码",example="pass1", required = true)
    private String password;
    @ApiModelProperty(value="邮箱",name="email",notes = "邮箱",example="123@qq.com", required = true)
    private String email;

    /**
     * 手机号码
     */
    @ApiModelProperty(value="手机号码",name="mobile",notes = "手机号码",example="1367008898", required = true)
    private String mobile;

    /**
     * 注册时间
     */
    @ApiModelProperty(value="注册时间",name="registerTime",notes = "注册时间",example="", required = false)
    private LocalDateTime registerTime;

    /**
     * 是否禁用,true为禁用
     */
    @ApiModelProperty(value="状态",name="status",notes = "状态,0为禁用，1可用",example="1", required = false)
    private Integer status;

    /**
     * 最后登录时间
     */
    @ApiModelProperty(value="最后登录时间",name="lastLoginTime",notes = "最后登录时间",example="", required = false)
    private LocalDateTime lastLoginTime;

    /**
     * 账户余额
     */
    @ApiModelProperty(value="账户余额",name="balance",notes = "账户余额",example="123", required = false)
    private Double balance;

    /**
     * 地址
     */
    @ApiModelProperty(value="地址",name="address",notes = "地址",example="baoan,xixiang", required = false)
    private String address;

    /**
     * 城市
     */
    @ApiModelProperty(value="城市",name="city",notes = "城市",example="深圳", required = false)
    private String city;

    /**
     * 邮编
     */
    @ApiModelProperty(value="邮编",name="postCode",notes = "邮编",example="518000", required = false)
    private Integer postCode;

    /**
     * 国家
     */
    @ApiModelProperty(value="国家",name="country",notes = "国家",example="China", required = true)
    private String country;
    
    @ApiModelProperty(value="应用状态",name="applyStatus",notes = "角色id",example="123", required = false)
    private Integer applyStatus;
    
    @ApiModelProperty(value="角色",name="roles",notes = "角色",example="123", required = false)
    private List<SmsRoleDTO> roles;
    
    @ApiModelProperty(value = "别名", name = "nickname")
    private String nickname;
    @ApiModelProperty(value = "账号名", name = "accountName")
    private String accountName;
    @ApiModelProperty(value = "姓", name = "firstName")
    private String firstName;
    @ApiModelProperty(value = "名", name = "lastName")
    private String lastName;
    @ApiModelProperty(value = "时区", name = "timeZone")
    private String timeZone;
    @ApiModelProperty(value = "语言", name = "language")
    private String language;
    @ApiModelProperty(value = "显示货币", name = "displayCurrency")
    private String displayCurrency;
    @ApiModelProperty(value = "性别", name = "sex")
    private Integer sex;
    @ApiModelProperty(value = "生日", name = "birthday")
    private String birthday;
    @ApiModelProperty(value = "个人网站", name = "personerWebsite")
    private String personerWebsite;
    @ApiModelProperty(value = "签名", name = "sign")
    private String sign;
    @ApiModelProperty(value = "上级用户", name = "parentUserId")
    private Integer parentUserId;
    @ApiModelProperty(value = "公司", name = "company")
    private String company;
    @ApiModelProperty(value = "公司网址", name = "companySite")
    private String companySite;
    @ApiModelProperty(value = "默认发送者ID或者编号", name = "defaultSender")
    private String defaultSender;
    @ApiModelProperty(value = "账号类型", name = "accountType")
    private String accountType;

}
